/*
******************************************************************************************************* 
**  Copyright (C) 2019, 苏州检易生物科技有限公司 
**  All rights reserved. 
** 
**  FileName:       	work_task.h
**  Description:	
**  Author:        	 
**  Version				v0.1
**  Date:           	2019-05-09
**	Function List： 
**  History:         
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*                                              	防止重复包含
*********************************************************************************************************
*/

#ifndef _WORK_TASK_H_
#define _WORK_TASK_H_
/*
*********************************************************************************************************
*                                              	调试开关
*********************************************************************************************************
*/



/*
*********************************************************************************************************
*                                              	头文件
*********************************************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <rtthread.h>

#include "stm32h7xx_hal.h"


/*
*********************************************************************************************************
*                                              	宏定义
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                              枚举和结构体类型定义
*********************************************************************************************************
*/
typedef enum{
	MSG_WORK_SYS_STATE,
	MSG_WORK_SYS_WARNING,
	MSG_WORK_SYS_ERROR,
	MSG_WORK_SYS_SUPPLY,
}work_msg_t;
/*
系统状态切换   
上电处于硬件自检状态 SYS_STATE_HW_INIT;
完成后进入硬件初始化完成状态 SYS_STATE_HW_DONE;
上位机命令进入SYS_STATE_MODULE_INIT 开始模块初始化;
初始化完成SYS_STATE_INIT_DONE;
初始化完成可以进入其他状态 如模块初始化SYS_STATE_MODULE_INIT，
流程模式SYS_STATE_WORK，调试模式SYS_STATE_CALIB;
在其他三种模式下必须先初始化才能切换其他模式;
发生致命错误进入SYS_STATE_ERR
*/
typedef enum{
	SYS_STATE_HW_INIT			= 0,
	SYS_STATE_HW_DONE			= 1,
	SYS_STATE_MODULE_INIT	= 2,
	SYS_STATE_INIT_DONE		= 3,
	SYS_STATE_WORK				= 4,
	SYS_STATE_CALIB				= 5,
	SYS_STATE_SUSPEND			= 6,
	SYS_STATE_ERR					= 7,
}sys_state_t;

typedef enum{
	SYSTEM_WARNING_ALKALI,
	SYSTEM_WARNING_CLEAN_LIQUID,
	SYSTEM_WARNING_WASTE_LIQUID,
	SYSTEM_WARNING_WASTE_TUBE,
	SYSTEM_WARNING_TUBE_PLATE,
}sys_warning_t;
/*
*********************************************************************************************************
*                                              	全局变量声明
*********************************************************************************************************
*/
extern struct rt_thread   	rt_work_tcb;
extern struct rt_mailbox		rt_work_mb;
//volatile extern uint8_t			sys_state;
/*
*********************************************************************************************************
*                                              	函数声明
*********************************************************************************************************
*/
void work_task_start(void);   

#endif
